package com.ttj.mapper.oracle;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ttj.domain.oracle.OrderInstock;
import com.ttj.mapper.oracle.gen.SuperOrderInstockMapper;

public interface OrderInstockMapper extends SuperOrderInstockMapper {
	
	/**
	 * 已拉货|已验收|已挂起
	 * 
	 * @param creater
	 * @return
	 */
	List<OrderInstock> pickedGood(Map<String, Object> map);

	/**
	 * 待拉货
	 * 
	 * @param creater
	 * @return
	 */
	List<OrderInstock> unPickGood(String creater);

	/**
	 * 订单详情
	 * 
	 * @param orderId
	 * @return
	 */
	List<OrderInstock> instockDetail(Long orderId);

	/**
	 * 订单详细品类列表
	 * 
	 * @param orderId
	 * @return
	 */
	List<OrderInstock> instockDetailList(Long orderId);

	/**
	 * 申请拉货
	 * 
	 * @param orderId
	 * @return
	 */
	int reply(String orderId);
	
	
	
	/**
	 * 司机拉货
	 * @param orderId
	 * @return
	 */
	int driverPicked(Map<String, Object> map);
	
	/**
	 * 删除拉货订单
	 * 
	 * @param orderId
	 * @return
	 */
	int delete(String orderId);

	/**
	 * 撤销待拉货订单
	 * 
	 * @param orderId
	 * @return
	 */
	int repeal(String orderId);

	/**
	 * 验收重量
	 * 
	 * @param map
	 * @return
	 */
	double checkNum1(Map<String, Object> map);

	/**
	 * 验收数量
	 * 
	 * @param map
	 * @return
	 */
	int checkNum2(Map<String, Object> map);

	/**
	 * 验收明细
	 * 
	 * @param map
	 * @return
	 */
	List<OrderInstock> checkDetail(Map<String, Object> map);

	/**
	 * 挂起次数
	 * @param map
	 * @return
	 */
	int hangupNum(Map<String, Object> map);
	
	/**
	 * 创建拉货拉货订单
	 * @param instock
	 * @return
	 */
	int createInstock(OrderInstock instock);
	
	
	
	/**
	 * 获取最后一次拉货时间
	 * @param username
	 * @return
	 */
	Date getLastOindate(String username);
	
	/**
	 * 最大in_id
	 * @return
	 */
	int getMaxInId();
	
	/**
	 * 最大拉货订单号
	 * @return
	 */
	int getMaxOrderId();
	
	/**
	 * 查询用户当天拉货订单是否唯一
	 * @param username
	 * @return
	 */
	int checkOrder(Map<String,Object> map);
	
	/**
	 * 获取一条订单
	 * @param orderId
	 * @return
	 */
	OrderInstock instock(String orderId);
	
	
	int getPurchaserCount();//网点未验收数量统计
	int getServiceCount();//服务组未验收数量统计
	int checkOrderInstock(Map<String,Object> map);//网点和服务组验收功能
	int hangingOrderInstock(Map<String,Object> map);//网点和服务组挂起功能
	List<OrderInstock> getPurchaserDriversList();//网点订单司机及车牌号查询
	List<OrderInstock> getPurchaserUncheckedList();//网点未验收订单列表
	List<OrderInstock> getPurchaserCheckedList(String valdateDate);//网点已验收订单列表
	List<OrderInstock> getPurchaserHangingList();//网点挂起订单列表
	List<OrderInstock> getPurchaserDetailByorderId(String orderId);//网点根据订单号查询详情
	List<OrderInstock> getServiceUncheckedList();//服务组未验收订单列表
	List<OrderInstock> getServiceCheckedList(String valdateDate);//服务组已验收订单列表
	List<OrderInstock> getServiceHangingList();//服务组挂起订单列表
	List<OrderInstock> getServiceDetailByorderId(String orderId);//服务组根据订单号查询详情
	int getAcceptTimes(Map<String,Object> map);//库管工作日志统计验收次数
	int getHangingTimes(Map<String,Object> map);//库管工作日志统计挂起次数
	List<OrderInstock> getAcceptList(Map<String,Object> map);//库管工作日志验收列表(用于制作延迟验收列表)
	List<OrderInstock> getHangingList(Map<String,Object> map);//库管工作日志挂起列表
	List<OrderInstock> showServicePullGoodsList(Map<String,Object> map);//服务组拉货管理列表
	List<OrderInstock> showServiceWaitingPullList(String sid);//服务组拉货管理待拉货列表
	int findMaxInId();//查询最大in_id用于创建入库单
	int findMaxOrderId();//查询最大order_id用于创建入库单
	int deleteByOrderIds(String orderIds);//删除指定入库单，用于服务组合并拉货
	List<OrderInstock> selectByOrderIds(String orderIds);//查询指定信息用于服务组合并拉货创建新入库单
	int createNewOrder(OrderInstock orderInstock);//创建新入库单
	double sumInstockMoney(Map<String,Object> map);//入库金额
}